package com.ssy.lingxi.sms.service;

import com.ssy.lingxi.sms.api.model.SmsConfigVO;
import com.ssy.lingxi.sms.api.model.request.TemplateRequest;
import com.ssy.lingxi.sms.entity.SmsConfig;
import com.ssy.lingxi.sms.entity.Template;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;

/**
 * 服务器配置
 * @author jw.chen
 * @version 2.0.0
 * @date 2020/6/10
 */
public interface ISmsConfigService {

    /**
     * 查询配置信息
     * @return Wrapper<?>
     */
    SmsConfig getSmsConfig(Integer serviceType);

    /**
     * 查询生效的配置信息
     * @return SmsConfig
     */
    SmsConfig findEnableSmsConfig();

    /**
     * 添加/修改短信服务器配置
     * @param smsConfigVO
     * @return
     */
    Boolean saveOrUpdateSmsConfig(SmsConfigVO smsConfigVO);

    /**
     * 删除短信服务器配置
     * @param serviceType
     * @param code
     * @return
     */
    Boolean deleteSmsConfig(Integer serviceType, String code);

    /**
     * 启用/停用短信服务器
     * @param serviceType
     * @return 是否成功
     */
    Boolean updateSmsConfigStatus(Integer serviceType);

    /**
     * 查询短信内容模板
     * @return
     */
    Page<Template> getSmsTemplateList(Pageable page);

    /**
     * 新增/修改短信内容模板
     * @return
     */
    Boolean saveOrUpdateSmsTemplate(TemplateRequest templateVO);

    /**
     * 删除短信内容模板
     * @return
     */
    Boolean deleteSmsTemplate(Long id);

    /**
     * 清空短信内容模板
     * @return
     */
    Boolean clearSmsTemplate();
}
